/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.jm.financeiro.filter;

import br.jm.financeiro.entity.Departamento;
import br.jm.financeiro.sistema.eao.DepartamentoEao;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;

/**
 *
 * @author joao
 */
public class DepartamentoConverter implements Converter {
    private List<Departamento> departamentoList;
    private Departamento departamento;
    private DepartamentoEao departamentoJpa;

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        departamentoJpa = DepartamentoEao.getInstance();
        departamento = new Departamento();
        departamentoList = new ArrayList<Departamento>();
        if (value.trim().equals("")) {
            return null;
        } else {
            try {
                int number = Integer.parseInt(value);

                departamento = departamentoJpa.getPorId(number);
                departamentoList.add(departamento);
                
                return departamento;
            } catch(Exception exception) {
                throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid Departamento"));
            }
        }
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value == null || value.equals("")) {
            return "";
        } else {
            return String.valueOf(((Departamento) value).getIdDepartamento());
        }
    }
    
}
